Raspberry Pi 的C++交叉编译环境配置 (1)

最近因为工作需要,正在学习配置Raspberry Pi的交叉编译环境。公司有一套基于Windows的程序准备移植到树莓派上,而自己本来是做Windows下的C++开发工作,因此选择界面比较友好的Ubuntu作为操作系统、VSCODE作为编辑器来进行开发工作,毕竟M$大法好。

这一系列博客将会按照下图的结构来展开:

RPi的交叉编译环境

工欲善其事,必先利其器。今天某宝买的Raspberry Pi 3B到货,记录一下交叉编译环境搭建的过程。我们会用到以下工具:

Ubuntu虚机和树莓派的系统有很多教程都很详细,我这里用的是Ubuntu 16.04LTS 和 RASPBIAN JESSIE WITH DESKTOP with Kernel version: 4.9

首先是安装交叉编译工具链到Ubuntu,打开Terminal在家目录下执行以下操作

1
2
mkdir tools
git clone https://github.com/raspberrypi/tools.git tools

这个命令会到 raspberrypi 的官方repo去下载工具,时间取决于网络情况。

下载完成后进入 $HOME/tools/arm-bcm2708 目录

在 arm-bcm2708目录下有以下目录, 每个都是一个单独的工具链:

  1. arm-bcm2708-linux-gnueabi
  2. arm-bcm2708hardfp-linux-gnueabi
  3. gcc-linaro-arm-linux-gnueabihf-raspbian
  4. gcc-linaro-arm-linux-gnueabihf-raspbian-x64

由于我用的是64为操作系统,所以需要把 4 指向的目录添加到 .bashrc 中。注意,/home/zheng是我自己的用户路径,这里要替换成你自己的路径。

1
2
3
4
vi ~/.bashrc
#添加以下内容到文件末尾
export PATH=$PATH:/home/zheng/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
source .bashrc

通过 source .bashrc更新terminal的环境变量

接下来执行

1
arm-linux-gnueabihf-gcc -v

如果看到这样的输出,就说明配置交叉编译工具成功了

控制台截图

今天就先写到这里,下回继续.